package com.translate.web.service;
import com.translate.entity.OrderLog;
import com.translate.web.param.contract.IIdAndUserIdParam;
import com.translate.web.param.contract.IPayBehaviorRequestParam;
import com.translate.web.param.contract.ISecondaryServiceParam;

public interface IOrderLogService extends IBaseTranslateService<OrderLog> { 

	
	/**
	 * 支付成功日志
	 * @param requestParam
	 * @return
	 */
	int paySuccessOrderLog(
			int id, int userId, int[] orderIds);
	
	/**
	 * 支付成功日志
	 * @param requestParam
	 * @return
	 */
	int paySuccessOrderLog(
			int id, int userId, int[] orderIds, byte orderStatus);
	
	
	/**
	 * 关联订单日志
	 * @param requestParam
	 * @return
	 */
	int assocIdOrderLog(
			int id, int userId, int[] orderIds);
	
	/**
	 * 待确认日志
	 * @param requestParam
	 * @return
	 */
	int toBeConfirmed(IPayBehaviorRequestParam requestParam, int[] orderIds);
	
	/**
	 * 待确认日志
	 * @param requestParam
	 * @return
	 */
	int toBeConfirmed(IPayBehaviorRequestParam requestParam, int[] orderIds, byte orderStatus);
	
	
	/**
	 * 作图进入支付管理
	 * @param requestParam
	 * @param orderIds
	 * @return
	 */
	int drawOrderLog(IPayBehaviorRequestParam requestParam);
	
	/**
     * 评论完成日志
     * @param requestParam
     * @param orderIds
     * @return
     */
	int commentOrderLog(IIdAndUserIdParam requestParam, int payManagerId);
	
	/**
	 * 二次服务
	 * @param <M>
	 * @param service
	 * @return
	 */
	 <M> int  secondaryService(ISecondaryServiceParam<M> service, int payManagerId);
	 
	 public <M> int secondaryServiceCancelLog(
				ISecondaryServiceParam<M> service,
				int payManagerId
		);

	 /**
	  * 获取待审核的二次服务
	  * @param userIdParam
	  * @return
	  */
	 OrderLog selectSecondaryService(IIdAndUserIdParam userIdParam, int orderStatus);
	 
}
